package net.mingsoft.mdiy.util;

import net.mingsoft.mdiy.entity.*;
import net.mingsoft.mdiy.biz.*;
import net.mingsoft.basic.util.*;
import net.mingsoft.base.entity.*;
import org.apache.commons.lang3.*;
import cn.hutool.core.util.*;
import com.baomidou.mybatisplus.core.conditions.query.*;
import com.baomidou.mybatisplus.core.conditions.*;
import java.util.*;

public class DictUtil
{
    public static List<DictEntity> list(final String dictType) {
        final DictEntity dict = new DictEntity();
        dict.setDictType(dictType);
        return (List<DictEntity>)((IDictBiz)SpringUtil.getBean((Class)IDictBiz.class)).query((BaseEntity)dict);
    }
    
    public static String getDictLabel(final String dictType, final String dictValue, final String defaultValue) {
        if (StringUtils.isNotBlank((CharSequence)dictType) && StringUtils.isNotBlank((CharSequence)dictValue)) {
            final DictEntity dictEntity = get(dictType, null, dictValue);
            if (ObjectUtil.isNotNull((Object)dictEntity)) {
                return dictEntity.getDictLabel();
            }
        }
        return defaultValue;
    }
    
    public static String getDictValue(final String dictType, final String dictLabel, final String defaultValue) {
        if (StringUtils.isNotBlank((CharSequence)dictType) && StringUtils.isNotBlank((CharSequence)dictLabel)) {
            final DictEntity dictEntity = get(dictType, dictLabel, null);
            if (ObjectUtil.isNotNull((Object)dictEntity)) {
                return dictEntity.getDictValue();
            }
        }
        return defaultValue;
    }
    
    public static DictEntity get(final String dictType, final String dictLabel, final String dictValue) {
        final DictEntity dict = new DictEntity();
        dict.setDictLabel(dictLabel);
        dict.setDictType(dictType);
        dict.setDictValue(dictValue);
        return (DictEntity)((IDictBiz)SpringUtil.getBean((Class)IDictBiz.class)).getOne((Wrapper)new QueryWrapper((Object)dict), false);
    }
    
    public static String getDictValue(final String dictType, final String dictLabel) {
        return getDictValue(dictType, dictLabel, "");
    }
    
    public static String getDictLabel(final String dictType, final String dictValue) {
        return getDictLabel(dictType, dictValue, "");
    }
    
    public static String getDictLabels(final String dictType, final String dictValues, final String defaultValue) {
        if (StringUtils.isNotBlank((CharSequence)dictType) && StringUtils.isNotBlank((CharSequence)dictValues)) {
            final List labels = new ArrayList();
            final String[] values = dictValues.split(",");
            for (int i = 0; i < values.length; ++i) {
                final String value = values[i];
                final String dictLabel = getDictLabel(dictType, value, defaultValue);
                if (!StringUtils.isBlank((CharSequence)dictLabel)) {
                    labels.add(dictLabel);
                }
            }
            return StringUtils.join((Iterable)labels, ",");
        }
        return defaultValue;
    }
    
    public static String getDictLabels(final String dictType, final String dictValues) {
        return getDictLabels(dictType, dictValues, "");
    }
    
    public static String getDictValues(final String dictType, final String dictLabels, final String defaultValue) {
        if (StringUtils.isNotBlank((CharSequence)dictType) && StringUtils.isNotBlank((CharSequence)dictLabels)) {
            final List values = new ArrayList();
            final String[] labels = dictLabels.split(",");
            for (int i = 0; i < labels.length; ++i) {
                final String value = labels[i];
                values.add(getDictValue(dictType, value, defaultValue));
            }
            return StringUtils.join((Iterable)values, ",");
        }
        return defaultValue;
    }
    
    public static String getDictValues(final String dictType, final String dictLabels) {
        return getDictValues(dictType, dictLabels, "");
    }
}
